The computer has greatly affected essentially all forms of information management, including the graphical editing and computer aided design and drafting (CAD) tools. Some simpler geometric modeling computer program products are two dimensional, providing only length and width dimensions of objects, while more complex and powerful computer program products provide three dimensional editing and visualization.
Three dimensional geometric modeling programs can generate a scene or part which can comprise one or more constituent 3D solid shapes. For example, a scene featuring a simple table would comprise a solid shape for each leg of the table, as well as a solid shape for a flat table top. The geometric modeling computer program typically has an executable object used to define and generate each solid shape. The object for each solid shape can have several components, the components being a combination of executable code and data structure. For example, a boundary representation (“B-rep”) component includes a data structure describing the geometry and topology data for the solid shape (e.g., length, width, depth, and coordinates of the solid part).
Most three dimensional geometric modeling programs employ a feature-based parametric modeling technique. In feature-based parametric modeling, the executable object for each solid shape has not only a boundary representation component, but also a history or creation component, referred to herein as a “feature tree,” which includes a data structure reflecting how a solid shape has been created. That is, the feature tree includes data which indicates an order or chronological sequence of steps employed to construct the solid shape. For a simple solid block, for example, the history may indicate that the solid block began as a simple two dimensional rectangle that was extruded into a third dimension. U.S. Pat. No. 5,894,310, incorporated herein by reference, discloses solid shapes having various other components in addition to boundary representation and historical components: a visual component; a physical component; a functional component; and a behavioral component. Similarly, U.S. Pat. No. 6,392,645, incorporated herein by reference, describes a method of converting between a feature-based data structure and a direct-face data structure in graphical modeling.
Typically, when the user wants to modify a feature-based solid shape by changing any aspect of the solid shape, the feature-based parametric modeling technique re-evaluates the entire solid shape, e.g., goes through the entire CGS feature tree in order to revise the part in accordance with the change. For example, if the user wanted to lengthen the table top of the table described above, another solid shape would be added adjacent to the previous table top. In so adding another solid shape corresponding to the increased length of the table top, another step is added to the CSG history. Alternatively, the user may modify the 2D profile of the table top and let the program to re-evaluate the solid shape of the table.
Construction of surfaces involves setting up networks of connected curves that are interpolated by the surfaces. The surface shape is manipulated by modifying the surface or, in some systems, the underlying curves.
There are three major approaches to editing curve networks in existing solutions:                In an associative modeling system, curves are created sequentially, with curves occurring later in the model referencing geometry from curves earlier in the model. Associative relationships update the curves, ensuring geometric connectivity when upstream curves are changed. The order in which the curves are related is implicitly defined by their position in the associative tree. The curves higher up in the tree drive the downstream curves. An upstream curve cannot be edited by connecting to a downstream curve, as that would create associative dependency loops. Typically, to prevent users from creating dependency loops, the software will automatically hide downstream geometry during editing of upstream curves, resulting in the user losing the context of his changes.        In some associative modeling systems, curves are grouped into curve networks that have local relationships. The relation of the curve network to entities outside of the group is similar to the above behavior. Though curves within a network can be simultaneously edited, there are similar limitations when relating to geometry outside the curve network.        In non-associative systems, the curves in a model have no explicit or implicit ordering. The curves do not have any relationships to each other but for their geometric connectivity. Curves are connected by snapping the geometry to significant points on other curves without creating relationships. Editing of a curve does not automatically update connected curves, resulting in adjacent curves disconnecting. All curves have to be individually modified to ensure geometric connectivity.        
There is, therefore, a need in the art for an improved system and method for editing curve networks in associative modeling systems.